S3 のクロスアカウントレプリケーションでダウンロード時の kms:Decrypt のエラーを回避するには

S3 のクロスアカウントレプリケーションでダウンロード時の kms:Decrypt のエラーを回避するには

Clock Icon2024.09.11

困っていた内容

クロスアカウントで S3 のレプリケーションを設定しました。
送信先バケットにオブジェクトが複製されましたが、ダウンロードしたところ次のkms:Decryptのエラーが発生します。
なぜでしょうか。解消する方法を教えてください。

<Error>
<Code>AccessDenied</Code>
<Message>User: arn:aws:sts::123456789012:assumed-role/hato/hato is not authorized to perform: kms:Decrypt on the resource associated with this ciphertext because the resource does not exist in this Region, no resource-based policies allow access, or a resource-based policy explicitly denies access</Message>
<RequestId>79104EXAMPLEB723</RequestId>
<HostId>IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km</HostId>
</Error>

どう対応すればいいの?

KMS のキーポリシーを確認してください。

暗号化に使用されている KMS のキーは、プロパティタブの「サーバー側の暗号化設定」セクションから確認できます。

S3 Cross Account Replication SSE-KMS

該当キーのキーポリシーを確認して、ダウンロードする IAM ユーザ/ロールに対してDecryptが許可されているか確認してください。

なお、エラーメッセージに KMS のリソース ARN が含まれていない場合、異なるアカウントの KMS キーの可能性がありますのでご注意ください。

# 含まれている場合
<Message>User: arn:aws:sts::123456789012:assumed-role/hato/hato is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:ap-northeast-1:123456789012:key/aaa674ef-bcad-4df4-b3c5-5d539c4f88dc because no resource-based policy allows the kms:Decrypt action</Message>

# 含まれていない場合
<Message>User: arn:aws:sts::123456789012:assumed-role/hato/hato is not authorized to perform: kms:Decrypt on the resource associated with this ciphertext because the resource does not exist in this Region, no resource-based policies allow access, or a resource-based policy explicitly denies access</Message>

また、使用されているキーが「AWS マネージド型キー」の場合、クロスアカウントレプリケーションのキーとしては使用できません。
「カスタマー管理型のキー」への移行作業が必要です。

暗号化されたオブジェクトのレプリケート (SSE-C、SSE-S3、SSE-KMS、DSSE-KMS) - Amazon Simple Storage Service

注記
SSE-KMS データをクロスアカウントでレプリケートする必要がある場合、レプリケーションルールでは、レプリケート先アカウントの AWS KMS からのカスタマーマネージドキーを指定する必要があります。AWS マネージドキー はクロスアカウントの使用を許可しないため、クロスアカウントレプリケーションの実行には使用できません。

参考資料

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.